package com.ukadas.eduko.controlador;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

import com.ukadas.eduko.controlador.datamodel.CursoProyectoDataModel;
import com.ukadas.eduko.modelo.mtm.CursoProyecto;
import com.ukadas.eduko.negocio.mtm.GestorCursosProyectos;

@ManagedBean(name="cursos_proyectosBB")
@RequestScoped
public class CursosProyectosBB implements Serializable {

	private static final long serialVersionUID = 1L;

	private CursoProyecto cursoProyecto;

	private List<CursoProyecto> lista;
	private CursoProyectoDataModel dataModelCP=new CursoProyectoDataModel(getListaCursosTutor());
	
	@ManagedProperty(value="#{gestorCursosProyectos}")
	private GestorCursosProyectos gestorCursosProyectos;
	
	private UsuarioSesionBB usuarioSesionBB;
	
	public CursoProyectoDataModel getDataModelCP() {
		return dataModelCP;
	}

	public void setDataModelCP(CursoProyectoDataModel dataModelCP) {
		this.dataModelCP = dataModelCP;
	}

	public CursoProyecto getCursoProyecto() {
		return cursoProyecto;
	}

	public void setCursoProyecto(CursoProyecto cursoProyecto) {
		this.cursoProyecto = cursoProyecto;
	}
	
	public void setUsuarioSesionBB(UsuarioSesionBB usuarioSesionBB) {
		this.usuarioSesionBB = usuarioSesionBB;
	}

	public void setGestorCursosProyectos(GestorCursosProyectos gestorCursosProyectos) {
		this.gestorCursosProyectos = gestorCursosProyectos;
	}
	
	public List<CursoProyecto> getListaCursos()  {
		return gestorCursosProyectos.listarTodos();
	}
	
	public List<CursoProyecto> getListaCursosTutor() {
		ExternalContext contexto=FacesContext.getCurrentInstance().getExternalContext();	
		usuarioSesionBB=(UsuarioSesionBB) contexto.getSessionMap().get("usuarioSesionBB");
		
		int idTutor=usuarioSesionBB.getUsuario().getPersona().getIdPersona();
		lista=convertir(gestorCursosProyectos.buscarPorTutor(idTutor));
		return lista;
	}	
	
	public List<CursoProyecto> convertir(List<Object[]> objetoCP){
		List<CursoProyecto> listaCP=new ArrayList<CursoProyecto>();
		for(Object[] o : objetoCP){
			CursoProyecto cp=(CursoProyecto) o[2];
			listaCP.add(cp);
		}
		return listaCP;
	}
}